package com.edu.bhu.admin.mapper;

import java.util.List;
import com.edu.bhu.admin.domain.LibBook;
import com.edu.bhu.common.core.domain.entity.SysUser;
import org.apache.ibatis.annotations.Param;

/**
 * 图书Mapper接口
 * 
 * @author wwb
 * @date 2022-02-11
 */
public interface LibBookMapper 
{
    /**
     * 查询图书
     * 
     * @param bookId 图书主键
     * @return 图书
     */
    public LibBook selectLibBookByBookId(Long bookId);

    /**
     * 查询图书列表
     * 
     * @param libBook 图书
     * @return 图书集合
     */
    public List<LibBook> selectLibBookList(LibBook libBook);

    /**
     * 查询图书列表(关联图书类型)
     *
     * @param libBook 图书
     * @return 图书集合
     */
    public List<LibBook> selectLibBookWithTypeList(LibBook libBook);

    /**
     * 查询图书列表(关联图书类型)(被删除的)
     *
     * @param libBook 图书
     * @return 图书集合
     */
    public List<LibBook> selectLibBookWithTypeListDel(LibBook libBook);

    /**
     * 新增图书
     * 
     * @param libBook 图书
     * @return 结果
     */
    public int insertLibBook(LibBook libBook);

    /**
     * 修改图书
     * 
     * @param libBook 图书
     * @return 结果
     */
    public int updateLibBook(LibBook libBook);

    /**
     * 批量修改图书信息（用于归还回收数据）
     *
     * @return 结果
     */
    public int updateLibBookBatch(@Param("ids") String[] ids);

    /**
     * 删除图书
     * 
     * @param bookId 图书主键
     * @return 结果
     */
    public int deleteLibBookByBookId(Long bookId);

    /**
     * 批量删除图书
     * 
     * @param bookIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteLibBookByBookIds(String[] bookIds);

    /**
     * 删除图书
     *
     * @param bookId 图书主键
     * @return 结果
     */
    public int deleteLibBookByBookIdForever(Long bookId);

    /**
     * 批量删除图书
     *
     * @param bookIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteLibBookByBookIdsForever(String[] bookIds);

    /**
     * 校验bookNo是否唯一
     *
     * @param bookNo
     * @return 结果
     */
    public LibBook checkBookNoUnique(String bookNo);
}
